Transposing apparatus, transposing method, and computer product

ABSTRACT

A transposing apparatus is configured by a computer controlling a computing device having computing elements arranged into a matrix and memory devices connected to the computing elements. The computing device executes an electromagnetic field analysis process on latticed three-dimensional analysis subject data present in a three-dimensional coordinate system. The computer is configured to detect the number of lined-up lattices in a direction of a first axis, in a direction of a second axis, and in a direction of a third axis of the coordinate system, through detection on the three-dimensional analysis subject data; transpose a group of lattices of the three-dimensional analysis subject data, based on the detected numbers of lined-up lattices and on the number of lined-up computing elements in a row direction and in a column direction; and output to the computing device, the three-dimensional analysis subject data transposed.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is based upon and claims the benefit of priority of theprior Japanese Patent Application No. 2012-062285, filed on Mar. 19,2012, the entire contents of which are incorporated herein by reference.

FIELD

The embodiment discussed herein is related to a transposing apparatus, atransposing method, and a transposing program.

BACKGROUND

The finite-differential time-domain (FDTD) method has been known as onemethod for performing electromagnetic field analysis in athree-dimensional analysis space. The FDTD method is a method ofexpanding the Maxwell's equation into a difference equation in atime-space area and solving the expanded difference equation tocalculate the value of an electromagnetic field in the analysis space.

In the execution of the FDTD method, multiple information processers mayperform parallel computation to realize efficient computation. In such acase, two information processors, to which computation by the FDTDmethod for adjacent two spaces are assigned, exchange calculationresults with each other.

A conventional technique is known of measuring the computationcapability of each information processor by simulation, dividing theanalysis space according to the computation capability of eachinformation processor, respectively assigning each resulting analysisspace to the information processors, and causing the informationprocessors to perform parallel computation by the FDTD method to performelectromagnetic field analysis (see, e.g., Japanese Laid-Open PatentPublication No. 2004-54642).

Another related technique is known of dividing an analysis space into amesh of subdivided spaces, assigning the subdivided spaces toinformation processors, and causing the information processors toexecute parallel computation by the Monte Carlo method to simulate astate of distribution of particles in multiple areas (see, e.g.,Japanese Laid-Open Patent Publication No. 2005-252009). Further, anotherrelated technique is known of improving the efficiency of application ofthe FDTD method to a circuit (see, e.g., Japanese Patent No. 4644740)

With the above techniques, however, multiple information processorsconnected so that communication between prescribed processors isprevented may be caused to execute parallel computation by the FDTDmethod. In this case, computations by the FDTD method for two adjacentspaces are assigned to two information processors connected enablingmutual communication, potentially leading to the presence of aninformation processor to which no computation by the FDTD method isassigned, depending on the shape of the analysis space.

Further, with the above techniques, multiple information processorsconnected to allow communication between arbitrary processors may becaused to execute parallel computation by the FDTD method. In this case,to exchange computation results between two information processors towhich computations by the FDTD method for two adjacent spaces areassigned, a router that controls the connection between the twoinformation processors executes a routing process. This routing processincreases the time waited for completion of computation result exchangebetween the information processors and thus, may increase the timeconsumed for computation by the FDTD method.

SUMMARY

According to one aspect of the present invention a transposing apparatusincludes a computer that controls a computing device having computingelements arranged into a matrix formation and memory devices eachconnected to each computing element. The computing device executes anelectromagnetic field analysis process on latticed three-dimensionalanalysis subject data present in a three-dimensional coordinate system.The computer is configured to detect the number of lined-up lattices ina direction of a first axis of the three-dimensional coordinate system,the number of lined-up lattices in a direction of a second axis of thecoordinate system, and the number of lined-up lattices in a direction ofa third axis of the coordinate system, through detection on thethree-dimensional analysis subject data; transpose a group of latticesof the three-dimensional analysis subject data, based on the detectednumbers of lined-up lattices and on the number of lined-up computingelements in a row direction and the number of lined-up computingelements in a column direction among the computing elements; and outputto the computing device, the three-dimensional analysis subject datatransposed.

The object and advantages of the invention will be realized and attainedby means of the elements and combinations particularly pointed out inthe claims.

It is to be understood that both the foregoing general description andthe following detailed description are exemplary and explanatory and arenot restrictive of the invention.

BRIEF DESCRIPTION OF DRAWINGS

FIGS. 1A and 1B are explanatory diagrams of an example of transpositionof data of an analysis space by a transposing apparatus;

FIG. 2 is an explanatory diagram of one example of an electromagneticfield analyzing system according to an embodiment;

FIG. 3 is a block diagram of a hardware configuration of a transposingapparatus 100 according to the embodiment;

FIG. 4 is a block diagram of an example of a functional configuration ofthe transposing apparatus 100;

FIG. 5 is an explanatory diagram of a working example 1 of transpositionof data of an analysis space A by the transposing apparatus 100;

FIG. 6 is an explanatory diagram of the order of assignment of surplusunit spaces B;

FIG. 7 is an explanatory diagram of one example of an execution commandstring;

FIG. 8 is an explanatory diagram of data exchange between computingelements PE;

FIG. 9 is an explanatory diagram of output of the result ofelectromagnetic field analysis of the analysis space A as a whole;

FIGS. 10, 11, and 12 are sequence diagrams of a procedure of theelectromagnetic field analysis process of the working example 1;

FIG. 13 is a flowchart of a procedure of a transposing process by thetransposing apparatus 100 of the working example 1;

FIG. 14 is a flowchart of a procedure of direction transposition patterndetermining process by the transposing apparatus 100;

FIGS. 15 and 16 are explanatory diagrams of a working example 2 oftransposition of data of the analysis space A by the transposingapparatus 100; and

FIG. 17 is a flowchart of a procedure of the transposing process by thetransposing apparatus 100 according to the working example 2.

DESCRIPTION OF EMBODIMENTS

Embodiments of a transposing apparatus, a transposing method, and atransposing program according to the present invention will be describedin detail, referring to the accompanying drawings. The transposingapparatus is a computer that divides data of an analysis space set in athree-dimensional rectangular coordinate system along the x-axis andY-axis, assigns the resulting spaces to multiple computing elements, andcauses the computing elements to execute parallel computation forelectromagnetic field analysis of the analysis space by an FDTD method.

Each computing element has a memory device that holds an electromagneticfield value, which is equivalent to a computation result by theelectromagnetic field analysis. For the electromagnetic field analysisby the FDTD method, each computing element acquires the value of theelectromagnetic field at a past point of time. Each computing elementacquires from another computing element, the value of theelectromagnetic field for a past point in time on the Y-axis and Z-axisalong which the analysis space is divided, and can acquire from thememory device of the computing element, the value of the electromagneticfield for a past point in time on the X-axis along which the analysisspace is not divided. In this manner, each computing element cancalculate the value of the electromagnetic field along the direction ofthe x-axis efficiently from the values of the electromagnetic field indirections along the Y-axis and Z-axis.

Thus, the transposing apparatus transposes data of the analysis space sothat the direction in which the size of the analysis space is thegreatest matches the X-axis direction in which the computing elementscan perform efficient calculation. The transposing apparatus thendivides the post-transposition analysis space along the Y-axis andZ-axis, assigns the resulting spaces to multiple computing elements, andcauses the computing elements to execute parallel computation for theelectromagnetic field analysis. Through this process, the transposingapparatus increases the processing volume for the electromagnetic fieldanalysis along the direction of the X-axis, in which the computingelements performs efficient calculation, and reduces the processingvolume for the electromagnetic field analysis along the directions ofthe Y-axis and the Z-axis. As a result, the computing elements canreduce the time consumed for the electromagnetic field analysis of thepost-transposition analysis space to a period less than the timeconsumed for the electromagnetic field analysis of the pre-transpositionanalysis space.

In the above case, the transposing apparatus divides the analysis spacealong the Y-axis and X-axis and allows the computing elements tocalculate the values of the electromagnetic field on the X-axis moreefficiently than the values of the electromagnetic field along thedirections of other axes. However, configuration is not limited hereto.For example, the transposing apparatus may divide the analysis spacealong the X-axis and Y-axis, in which case the computing elements cancalculate the values of the electromagnetic field on the Z-axis moreefficiently than the values of the electromagnetic field along thedirections of other axes.

FIGS. 1A and 1B are explanatory diagrams of an example of transpositionof data of an analysis space by the transposing apparatus. In FIGS. 1Aand 1B, a transposing apparatus 100 causes a computing device C havingmultiple computing elements PE to execute parallel computation forelectromagnetic field analysis by the FDTD method, for an analysis spaceA present in a three-dimensional rectangular coordinate system andthereby, performs the electromagnetic field analysis for the analysisspace A. The analysis space A is a set of unit spaces B present in thethree-dimensional rectangular coordinate system represented by theX-axis, Y-axis, and Z-axis. The unit space B is a so-called “Yeelattice”. The length of one side of the unit space B is expressed interms of, for example, meter.

FIG. 1A depicts one example of the computing device C having multiplecomputing elements PE, by which computing device C executes parallelcomputation for the electromagnetic field analysis. In FIG. 1A, themultiple computing elements PE of the computing device C are arrangedinto a “5-line/4-column” two-dimensional matrix. Each computing elementPE is connected to another computing element PE adjacent thereto. Eachcomputing element PE has a memory device that serves as a memory areaand that holds a computation result by the electromagnetic fieldanalysis. A computation result by the electromagnetic field analysisrepresents the value of an electromagnetic field at a given coordinatein the analysis space A.

Each computing element can calculate the value of the electromagneticfield on the X-axis direction more efficiently than the values of theelectromagnetic field along the directions of the Y-axis and Z-axis.Hereinafter, the X-axis direction in which the value of theelectromagnetic field is calculated efficiently is expressed as theX-axis direction in which the efficiency of the electromagnetic fieldanalysis is improved.

FIG. 1B depicts an example of transposition of data of the analysisspace A by the transposing apparatus 100. In FIG. 1B, the analysis spaceA is a set of unit spaces B made up of 10 unit spaces B stacked in adirection V1, 16 unit spaces B stacked in a direction V2, and 4 unitspaces B stacked in a direction V3. Before transposition by thetransposing apparatus 100, the analysis space A is placed in thethree-dimensional coordinate system such that the direction V matchesthe X-axis directialong the direction V2 matches the Y-axis direction,and the direction V3 matches the Z-axis direction

Hereinafter, the number of unit spaces in each of the directions V1 toV3 is expressed as the number of lattices in each of the directions V1to V3. When the number of lattices in the V1 direction is “10”, thenumber of lattices in the V2 direction is “16”, and the number oflattices in the V3 direction is “4”, the numbers of lattices inrespective directions V1 to V3 are expressed as “10, 16, 4”. When theanalysis space A is placed in the three-dimensional coordinate system,the numbers of lattices in the directions V1 to V3 each matching eachaxial direction are expressed as the numbers of lattices in respectiveaxial directions. When the number of lattices in the X-axis direction is“10”, the number of lattices in the Y-axis direction is “16”, and thenumber of lattices in the Z-axis direction is “4”, the numbers oflattices in respective axial directions are expressed as “10, 16, 4”.

The transposing apparatus 100 transposes data of the analysis space A sothat the direction in which the size of the analysis space A is thegreatest becomes the X-axis direction in which the efficiency of theelectromagnetic field analysis is improved. Data of the analysis space Aare variables for an electromagnetic field in each of the unit spaces Bin the analysis space A. The transposing apparatus 100 then divides thepost-transposition analysis space A by lattices configured by cellsrespectively corresponding to the arrangement position of each of thecomputing elements PE, and causes each computing element PE to executethe electromagnetic field analysis of a space present in a correspondingcell.

The transposing apparatus 100 identifies, for example, the greatestnumber of lattices “16” among the numbers of lattices “10, 16, 4” inrespective directions V1 to V3 of the analysis space A, therebyidentifies the direction V2 in which the number of lattices is thegreatest. The transposing apparatus 100 exchanges variables for theelectromagnetic field along the direction V2, for variables for theelectromagnetic field along the direction V1 matching the X-axisdirection so that the identified direction V2 becomes the X-axisdirection in which the efficiency of the electromagnetic field analysisis improved and thereby, transposes data of the analysis space A. Hence,the transposing apparatus 100 transposes the data of the analysis spaceA in which the numbers of lattices in respective axial directions of thethree-dimensional coordinate system are “10, 16, 4” into data of theanalysis space A in which the numbers of lattices in respective axialdirections of the three-dimensional coordinate system are “16, 10, 4”.

The transposing apparatus 100 divides the post-transposition analysisspace A by the lattices configured by cells corresponding to thearrangement positions of the computing elements PE, into spaces in thedivided cells. The transposing apparatus 100 assigns to each computingelement PE, the spaces in the cell corresponding to the arrangementposition of the computing element PE, and causes the computing elementPE to execute the electromagnetic field analysis of the assigned spaces.

For example, the transposing apparatus 100 divides the analysis space Ain which the numbers of lattices in respective axial directions are “16,10, 4” into 20 spaces with the numbers of lattices of “16, 2, 1” so thatthe divided spaces correspond to a “5-line/4-column” matrix of thecomputing elements PE. In this case, the row direction and the columndirection of the matrix of the computing elements PE correspond to theY-axis direction and the Z-axis direction, respectively. The transposingapparatus 100 assigns a space corresponding to the arrangement positionof each computing element PE, to each computing element PE and causesthe computing element PE to execute the electromagnetic field analysisof the assigned space.

Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis along theX-axis direction in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the computing elements can reduce the time consumed for theelectromagnetic field analysis of the post-transposition analysis spaceA to a period shorter than the time consumed for the electromagneticfield analysis of the pre-transposition analysis space A.

The transposing apparatus 100 may transpose data of the analysis space Aso that the utilization efficiency of the computing elements PE isimproved, based on the number of computing elements PE in the rowdirection and the number of computing elements PE in the columndirection. An example of transposing data of the analysis space A sothat the utilization efficiency of the computing elements PE is improvedwill be described later, referring to FIG. 5 or FIGS. 14 and 15.

FIG. 2 is an explanatory diagram of one example of an electromagneticfield analyzing system according to an embodiment. An electromagneticfield analyzing system 200 includes the transposing apparatus 100, oneor multiple computing devices C, and a user terminal 201. Thetransposing apparatus 100 is connected to the computing devices C and tothe user terminal 201.

The transposing apparatus 100 receives a coordinate value of thepre-transposition analysis space A and an electromagnetic field value atthe coordinate from the user terminal 201. The transposing apparatus 100then exchanges variables for the electromagnetic field in respectiveaxial directions, using the numbers of computing elements PE in the rowdirection and in the column direction and the numbers of lattices inrespective axial directions, thereby transposing data of the analysisspace A. The transposing apparatus 100 divides the post-transpositionanalysis space A by lattices configured by cells corresponding to thearrangement position of each of the computing elements PE, and causeseach computing element PE to execute the electromagnetic field analysisof a space present in the cell corresponding to the arrangement positionof the computing element PE.

The computing device C has a controller 202 and computing units 203,which are connected via a bridge 204, respectively. The controller 202receives data of spaces divided by the transposing apparatus 100, andassigns the divided spaces to computing elements PE. Each computing unit203 includes computing elements PE arranged in a matrix formation. Thecomputing units 203 execute electromagnetic field analysis of assignedspaces using data of the assigned spaces. Each computing element PE hasa memory device M used as a work area or as an area where a computationresult by the electromagnetic field analysis is stored.

The user terminal 201 receives a coordinate value of the analysis spaceA and the value of an electromagnetic field for the coordinate that aresent from the user of the user terminal 201. The user terminal 201transmits the received coordinate value of the analysis space A and thevalue of the electromagnetic field for the coordinate, to thetransposing apparatus 100.

In this example, the computing unit 203 includes 4 computing elements PEarranged in a matrix formation. However, configuration is not limitedhereto. The computing unit 203, for example, may include 6 computingelements PE arranged in a matrix formation. The computing device Cincludes 6 computing units 203, thus including 24 computing elements PE.However, configuration is not limited hereto. The computing device C,for example, may include a single computing unit 203 having 24 computingelements 24, or may include 12 computing units 203 each having 2computing elements PE, or may include computing elements PE of which thenumber is not 24.

FIG. 3 is a block diagram of a hardware configuration of the transposingapparatus according to the embodiment. As depicted in FIG. 3, thetransposing apparatus includes a central processing unit (CPU) 301, aread-only memory (ROM) 302, a random access memory (RAM) 303, a magneticdisk drive 304, a magnetic disk 305, an optical disk drive 306, anoptical disk 307, a display 308, an interface (I/F) 309, a keyboard 310,a mouse 311, a scanner 312, and a printer 313, respectively connected bya bus 300.

The CPU 301 governs overall control of the transposing apparatus. TheROM 302 stores therein programs such as a boot program. The RAM 303 isused as a work area of the CPU 301. The magnetic disk drive 304, underthe control of the CPU 301, controls the reading and writing of datawith respect to the magnetic disk 305. The magnetic disk 305 storestherein data written under control of the magnetic disk drive 304.

The optical disk drive 306, under the control of the CPU 301, controlsthe reading and writing of data with respect to the optical disk 307.The optical disk 307 stores data written under control of the opticaldisk drive 306, the data being read by a computer.

The display 308 displays, for example, data such as text, images,functional information, etc., in addition to a cursor, icons, and/ortool boxes. A liquid crystal display, a plasma display, etc., may beemployed as the display 308.

The I/F 309 is connected to a network 314 such as a local area network(LAN), a wide area network (WAN), and the Internet through acommunication line and is connected to other apparatuses through thenetwork 314. The I/F 309 administers an internal interface with thenetwork 314 and controls the input/output of data from/to externalapparatuses. For example, a modem or a LAN adaptor may be employed asthe I/F 309.

The keyboard 310 includes, for example, keys for inputting letters,numerals, and various instructions and performs the input of data.Alternatively, a touch-panel-type input pad or numeric keypad, etc. maybe adopted. The mouse 311 is used to move the cursor, select a region,or move and change the size of windows. A track ball or a joy stick maybe adopted provided each respectively has a function similar to apointing device.

The scanner 312 optically reads an image and takes in the image datainto the transposing apparatus. The scanner 312 may have an opticalcharacter reader (OCR) function as well. The printer 313 prints imagedata and text data. The printer 313 may be, for example, a laser printeror an ink jet printer. Any one or more among the optical disk drive 306,the optical disk 307, the display 308, the keyboard 310, the mouse 311,the scanner 312, and the printer 313 may be omitted from theconfiguration.

An example of a functional configuration of the transposing apparatus100 will be described, referring to FIG. 4.

FIG. 4 is a block diagram of an example of a functional configuration ofthe transposing apparatus 100. The transposing apparatus 100 includes adetecting unit 401, a transposing unit 402, and an output unit 403.Functions of the detecting unit 401, the transposing unit 402, and theoutput unit 403 are implemented by, for example, causing the CPU 301 toexecute programs stored in the memory devices depicted in FIG. 3, suchas the ROM 302, RAM 303, magnetic disk 305, and optical disk 307, orthrough the I/F 309.

The transposing apparatus 100 transposes data of the analysis space A sothat the efficiency of the electromagnetic field analysis by computingelements PE included in the computing device C is improved. Thetransposing apparatus 100 may transpose data of the analysis space A sothat the utilization efficiency of computing elements PE is improvedbased on the number of computing elements PE in the row direction andthe number of computing elements in the column direction.

Functions of the transposing apparatus 100 in the case of transposingdata of the analysis space A so that the efficiency of theelectromagnetic field analysis by computing elements PE is improved willfirst be described. Functions of the transposing apparatus 100 in thecase of transposing data of the analysis space A so that the efficiencyof the electromagnetic field analysis by computing elements PE isimproved are implemented by, for example, the detecting unit 401, thetransposing unit 402, and the output unit 403. The process by thetransposing apparatus 100 in the case of transposing data of theanalysis space A so that the efficiency of the electromagnetic fieldanalysis by computing elements is improved is, for example, the processthat has been described referring FIGS. 1A and 1B.

For three-dimensional analysis subject data, the detecting unit 401detects the number of lattices in the direction of the first axis of athree-dimensional coordinate system, the number of lattices in thedirection of the second axis of the coordinate system, and the number oflattices in the direction of the third axis of the coordinate system.The three-dimensional analysis subject data is, for example, dataindicative of an initial condition for an electromagnetic field in eachunit space B included in the lattice-shaped analysis space A set in thethree-dimensional coordinate system. The data indicative of the initialcondition for the electromagnetic field is, for example, the initialvalue of the electromagnetic field in each of the unit spaces B. Forexample, when the directions V1 to V3 of the analysis space A arearranged to match the directions of the axes, respectively, the numberof lattices in the direction of each axis represents, for example, thenumber of unit spaces B present continuously in each of the directionsV1 to V3 in the analysis space A, that is, the number of lattices inrespective axial directions described above.

In the example depicted in FIGS. 1A and 1B, in the analysis space A ofFIG. 1B, the detecting unit 401 detects the numbers of lattices “10, 16,4” in the directions V1 to V3 of the analysis space A arranged to matchrespective axial directions. This allows the transposing unit 402 totranspose the three-dimensional analysis subject data. Detected data isstored to, for example, the memory areas, such as the RAM 303, magneticdisk 305, and optical disk 307.

The transposing unit 402 transposes a group of lattices of thethree-dimensional analysis subject data, based on each of the numbers oflattices detected by the detecting unit 401 and on the number ofcomputing elements PE in the row direction and the number of computingelements PE in the column direction, among multiple computing elementsPE. The multiple computing elements PE are arranged in, for example, amatrix formation, and are each connected to the memory device M. Thecomputing elements PE are included in, for example, the computing deviceC that executes the electromagnetic field analysis of the analysissubject data. The transposing unit 402 transposes the group of latticesof the three-dimensional analysis subject data so that, for example, thedirection of the lineup of the lattices of the three-dimensionalanalysis subject data is such that the number of the lattices that isthe greatest, matches the direction of the axis that does not correspondto the row direction or the column direction, among the directions ofthe first, second, and third axes.

In the example of FIG. 1, the transposing unit 402 identifies thegreatest number of lattices “16” among the numbers of lattices “10, 16,4” in the directions V1 to V3 of the analysis space A and thus,identifies the direction V2 in which the number of lattices is thegreatest. The transposing unit 402 then exchanges variables for theelectromagnetic field along the direction V2, for variables for theelectromagnetic field along the direction V1 so that the identifieddirection V2 becomes the X-axis direction in which the efficiency of theelectromagnetic analysis is improved, thereby transposes the data of theanalysis space A. Hence, the transposing unit 402 transposes the data ofthe analysis space A in which the numbers of lattices in respectiveaxial directions of the three-dimensional coordinate system are “10, 16,4” into data of the analysis space A in which the numbers of lattices inrespective axial directions of the three-dimensional coordinate systemare “16, 10, 4”.

In this manner, the transposing unit 402 can generate analysis subjectdata that improves the efficiency of the electromagnetic field analysisby the computing elements PE. The transposed data is stored to a memorydevice, such as the RAM 303, magnetic disk 305, and optical disk 307.

The output unit 403 outputs the three-dimensional analysis subject datatransposed by the transposing unit 402, to the computing device C. Theoutput unit 403, for example, divides the post-transposition analysisspace A into spaces corresponding to the arrangement positions of amatrix of computing elements PE. The output unit 403 then outputs thespaces corresponding to the arrangement positions, to computing elementsPE present at the arrangement positions. Through this process, theoutput unit 403 causes the computing elements PE to execute theelectromagnetic field analysis of the spaces.

Forms of data output includes display on the display 308, printout bythe printer 313, and transmission to an external apparatus through theI/F 309. The data may be stored in memory areas, such as the RAM 303,magnetic disk 305, and optical disk 307.

The function of the transposing apparatus 100 in the case of transposingdata of the analysis space A so that the utilization efficiency ofcomputing elements PE is improved based on the number of computingelements PE in the row direction and the number of computing elements inthe column direction will be described. Functions of the transposingapparatus 100 in the case of transposing data of the analysis space A sothat the utilization efficiency of computing elements PE is improved areimplemented by, for example, the detecting unit 401, the transposingunit 402, and the output unit 403.

Functions of the detecting unit 401 and the output unit 403 are the sameas the functions of the detecting unit 401 and the output unit 403 inthe above case of transposing data of the analysis space A so that theefficiency of the electromagnetic field analysis by the computingelements PE is improved, and are therefore omitted in furtherdescription. An example of the process by the transposing apparatus 100in the case of transposing data of the analysis space A so that theutilization efficiency of the computing elements PE is improved will bedescribed later, referring to FIG. 5 or FIGS. 14 and 15.

The transposing unit 402 determines whether the least number of lined-uplattices among numbers of lined-up lattices in respective directions islarger than the number of lined-up computing elements PE in the rowdirection and the number of lined-up computing elements PE in the columndirection. If determining that the least number of lined-up lattices islarger than the number of lined-up computing elements PE in the rowdirection and the number of lined-up computing elements PE in the columndirection, the transposing unit 402 transposes the group of lattices ofthe three-dimensional analysis subject data so that the direction of thelineup of lattices of the three-dimensional analysis subject data issuch that the number of the lineup of lattices that is the greatest,matches the direction of the axis that does not correspond to the rowdirection or the column direction, among the directions of the first,second, and third axes.

The transposing unit 402 then identifies the direction of the axiscorresponding to the lineup direction in which the number of lined-upcomputing elements PE is the least among the number of lined-upcomputing elements PE in the row direction and the number of lined-upcomputing elements PE in the column direction, among the directions ofthe first, second, and third axes. The transposing unit 402 thentransposes the group of lattices of the three-dimensional analysissubject data so that the direction of lined-up lattices of thethree-dimensional analysis subject data, the number of the lined-uplattices being the least, becomes the identified direction of the axis.

A case is described where in the three-dimensional coordinate system,the number of lattices in respective axial directions are “8, 6, 10”,the number of lined-up computing elements PE in the row direction is“4”, and the number of lined-up computing elements PE in the columndirection is “3”. It is assumed in this case that the row direction andthe column direction of a matrix of computing elements PE correspond tothe Y-axis direction and the Z-axis direction, respectively. In thiscase, for example, the transposing unit 402 identifies the greatestnumber of lattices “10” and the least number of lattices “6” among thenumbers of lattices in respective directions of the analysis space A.The transposing unit 402 then transposes data of the analysis space A sothat among the directions V1 to V3, the direction in which the number oflattices is the greatest number of lattices “10” becomes the X-axisdirection and the direction in which the number of lattices is the leastnumber of lattices “6” becomes the Z-axis direction. Hence, thetransposing unit 402 transposes the data of the analysis space A inwhich the numbers of lattices in respective axial directions are “8, 6,10” into data of the analysis space A in which the numbers of latticesin respective axial directions are “10, 8, 6”.

In this manner, the transposing unit 402 can generate analysis subjectdata that improves the efficiency of the electromagnetic field analysisby the computing elements PE and that improves the utilizationefficiency of the computing elements PE. The transposed data is storedin the memory devices, such as the RAM 303, magnetic disk 305, andoptical disk 307.

The transposing unit 402 determines whether the greatest number oflined-up lattices among lined-up lattices in the respective directionsis smaller than the number of lined-up computing elements PE in the rowdirection and the number of lined-up computing elements PE in the columndirection. When determining that the greatest number of lined-uplattices is smaller than the number of lined-up computing elements PE inthe row direction and the number of lined-up computing elements PE inthe column direction, the transposing unit 402 identifies the directionof the axis corresponding to the lineup direction in which the number oflined-up computing elements PE is the greatest among the number oflined-up computing elements PE in the row direction and the number oflined-up computing elements PE in the column direction, among thedirections of the first, second, and third axes. The transposing unit402 then transposes the group of lattices of the three-dimensionalanalysis subject data so that the direction of the lineup of lattices ofthe three-dimensional analysis subject data is such that the number ofthe lined-up lattices that is the greatest, becomes the identifieddirection of the axis.

The transposing unit 402 then transposes the group of lattices of thethree-dimensional analysis subject data so that the direction oflined-up lattices of the three-dimensional analysis subject data is suchthat the number of the lined-up lattices that is the least, becomes thedirection of the axis not corresponding to the row direction or thecolumn direction, among the directions of the first, second, and thirdaxes.

A case is described where in the three-dimensional coordinate system,the number of lattices in respective axial directions are “3, 2, 2”, thenumber of lined-up computing elements PE in the row direction is “4”,and the number of lined-up computing elements PE in the column directionis “3”. It is assumed in this case that the row direction and the columndirection of a matrix of computing elements PE correspond to the Y-axisdirection and the Z-axis direction, respectively. In this case, forexample, the transposing unit 402 identifies the greatest number oflattices “3” and the least number of lattices “2” among the numbers oflattices in respective directions of the analysis space A. Thetransposing unit 402 then transposes data of the analysis space A sothat among the directions V1 to V3, the direction in which the number oflattices is the greatest number of lattices “3” becomes the Y-axisdirection and that the direction in which the number of lattices is theleast number of lattices “2” becomes the X-axis direction. Hence, thetransposing unit 402 transposes the data of the analysis space A inwhich the numbers of lattices in respective axial directions are “3, 2,2” into data of the analysis space A in which the numbers of lattices inrespective axial directions are “2, 3, 2”.

In this manner, the transposing unit 402 can generate analysis subjectdata that improves the efficiency of the electromagnetic field analysisby the computing elements PE and that improves the utilizationefficiency of the computing elements PE. The transposed data is storedin the memory devices, such as the RAM 303, magnetic disk 305, andoptical disk 307.

The transposing unit 402 determines whether the first number of lined-upcomputing elements PE selected as the larger number of computingelements PE among the number of lined-up computing elements PE in therow direction and the number of lined-up computing elements PE in thecolumn direction is larger than the least number of lined-up latticesamong respective numbers of lined-up lattices. The transposing unit 402also determines whether the second number of lined-up computing elementsPE selected as the smaller number of computing elements PE among thenumber of lined-up computing elements PE in the row direction and thenumber of lined-up computing elements PE in the column direction issmaller than the greatest number of lined-up lattices among respectivenumbers of lined-up lattices. If determining that the first number oflined-up computing elements PE is larger than the least number oflined-up lattices and the second number of lined-up computing elementsPE is smaller than the greatest number of lined-up lattices, thetransposing unit 402 executes the following process.

The transposing unit 402 identifies the direction of the axiscorresponding to the direction of lineup of the first number of lined-upcomputing elements PE, among the directions of the first, second, andthird axes. The transposing unit 402 then transposes the group oflattices of the three-dimensional analysis subject data so that thedirection of a lineup of lattices of the three-dimensional analysissubject data, the number of the lineup of lattices being close to thefirst number of lined-up computing elements PE among the middle numberof line-up lattices equal to or less than the greatest number oflined-up lattices and equal to or larger than the least number oflined-up lattices and the greatest number of lined-up lattices, matchesthe identified direction of the axis. The transposing unit 402 thenidentifies the direction of the axis corresponding to the direction oflineup of the second number of lined-up computing elements PE, among thedirections of the first, second, and third axes. The transposing unit402 then transposes the group of lattices of the three-dimensionalanalysis subject data so that the direction of lined-up lattices of thethree-dimensional analysis subject data, the number of the lined-uplattices being close to the second number of lined-up computing elementsPE among the middle number of line-up lattices and the least number oflined-up lattices, matches the identified direction of the axis.

A case is described where in the three-dimensional coordinate system,the number of lattices in respective axial directions are “6, 8, 2”, thenumber of lined-up computing elements PE in the row direction is “4”,and the number of lined-up computing elements PE in the column directionis “3”. It is assumed in this case that the row direction and the columndirection of a matrix of computing elements PE correspond to the Y-axisdirection and the Z-axis direction, respectively. In this case, forexample, the transposing unit 402 identifies the greatest number oflattices “8”, the middle number of lattices “6”, and the least number oflattices “2” among the numbers of lattices in respective directions ofthe analysis space A. The transposing unit 402 then transposes data ofthe analysis space A so that a direction in which the number of latticesis “6”, which is close to the number of lined-up computing elements PE“4” in the row direction, among the greatest number of lattices “8” andthe middle number of lattices “6” becomes the Y-axis direction.

The transposing unit 402 then transposes data of the analysis space A sothat a direction which is not transposed into the Y-axis direction andin which the number of lattices is “2”, which is close to the number oflined-up computing elements PE “3” in the column direction, among themiddle number of lattices “6” and the least number of lattices “2”becomes the Z-axis direction. Hence, the transposing unit 402 transposesthe data of the analysis space A in which the numbers of lattices inrespective axial directions are “6, 8, 2” into data of the analysisspace A in which the numbers of lattices in respective axial directionsare “8, 6, 2”.

In this manner, the transposing unit 402 can generate analysis subjectdata that improves the efficiency of the electromagnetic field analysisby the computing elements PE and that improves the utilizationefficiency of the computing elements PE. The transposed data is storedin the memory devices, such as the RAM 303, magnetic disk 305, andoptical disk 307.

A working example 1 of transposition of data of the analysis space A bythe transposing apparatus 100 will be described, referring to FIG. 5.The working example 1 is an example in which the unit spaces B of theanalysis space A are transposed so that the utilization efficiency ofthe computing elements PE is improved.

FIG. 5 is an explanatory diagram of the working example 1 oftransposition of data of the analysis space A by the transposingapparatus 100. In FIG. 5, the numbers of lattices in respectivedirections V1 to V3 of the analysis space A are “8, 10, 6”, and thedirection V1, direction V2, and direction V3 match the x-axis direction,Y-axis direction, and Z-axis direction, respectively. The numbers oflattices in respective axial directions are, therefore, “8, 10, 6”.Multiple computing elements PE are arranged into a “4-line/3-column”two-dimensional matrix formation. It is assumed the row direction andthe column direction of the matrix of computing elements PE correspondto the Y-axis direction and the Z-axis direction, respectively.

The transposing apparatus 100 transposes data of the analysis space A sothat a direction in which the size of the analysis space A is thegreatest becomes the X-axis direction in which the efficiency of theelectromagnetic field analysis is improved. The transposing apparatus100 then transposes the data of the analysis space A so that a directionin which the size of the analysis space A is the least becomes the axialdirection corresponding to a direction in which the number of lined-upcomputing elements PE is larger among the row direction and the columndirection of the multiple computing elements PE. The transposingapparatus 100 then divides the post-transposition analysis space A bylattices configured by cells corresponding to the arrangement positionsof the computing elements PE, and causes each computing element PE toexecute the electromagnetic field analysis of a space present in thecell.

The transposing apparatus 100 identifies, for example, the greatestnumber of lattices “10” among the numbers of lattices “8, 10, 6” inrespective directions V1 to V3 of the analysis space A and thereby,identifies the direction V2 in which the number of lattices is thegreatest. The transposing apparatus 100 then exchanges variables for theelectromagnetic field along the direction V2, for variables for theelectromagnetic field along the direction V1 matching the X-axisdirection so that the identified direction V2 becomes the X-axisdirection in which the efficiency of the electromagnetic field analysisis improved and thereby, transposes data of the analysis space A.

The transposing apparatus 100 identifies the least number of lattices“6” among the numbers of lattices “10, 8, 6” in respective directions V1to V3 of the post-transposition analysis space A, thus identifying thedirection V3 in which the number of lattices is the least. Thetransposing apparatus 100 transposes data of the analysis space A sothat the identified direction V3 becomes the Z-axis directioncorresponding to a direction in which the number of lined-up computingelements PE is smaller among the row direction and the column directionof the multiple computing elements PE. In FIG. 5, the direction V3matches the Z-axis direction, so that the data of the analysis space Ais not transposed in the direction V3. As a result, transposingapparatus 100 transposes the data of the analysis space A in which thenumbers of lattices in respective axial directions of thethree-dimensional coordinate system are “8, 10, 6” into data of theanalysis space A in which the numbers of lattices in respective axialdirections of the three-dimensional coordinate system are “10, 8, 6”.

The transposing apparatus 100 then divides the post-transpositionanalysis space A by lattices having cells corresponding to thearrangement positions of the computing elements PE into spaces in thedivided cells. The transposing apparatus 100 assigns a space in eachcell corresponding to the arrangement position of each computing elementPE, to each computing element PE and causes the computing element PE toexecute the electromagnetic field analysis of the assigned space.

For example, the transposing apparatus 100 divides the analysis space Ain which the numbers of lattices in respective axial directions are “10,8, 6” into 12 spaces with the numbers of lattices of “10, 2, 2” so thatthe divided spaces correspond to the arrangement position of a“4-line/3-column” matrix of the computing elements PE. The transposingapparatus 100 then assigns a space corresponding to the arrangementposition of each computing element PE, to each computing element PE andcauses the computing element PE to execute the electromagnetic fieldanalysis of the assigned space.

Through this process, the transposing apparatus 100 increases aprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces a processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the computing elements PE can reduce the time consumed for theanalysis of the post-transposition analysis space A to a period shorterthan the time consumed for the electromagnetic field analysis of thepre-transposition analysis space A.

The transposing apparatus 100 assigns 48 unit spaces B at maximum toeach computing element PE before the transposition, and assigns 40 unitspaces B at maximum after the transposition. As a result, thetransposing apparatus 100 averages processing volumes of the computingelements PE and thereby, improves the utilization efficiency of eachcomputing element PE.

Order of assignment of surplus unit spaces B will be described,referring to FIG. 6. Surplus unit spaces B are unit spaces B that areremain as surplus when the analysis space A is divided into unit spacesB corresponding to the arrangement positions of multiple computingelements PE, the analysis space A cannot be divided into each of thesame number of unit spaces B corresponding to each computing element PE.

FIG. 6 is an explanatory diagram of the order of assignment of surplusunit spaces B. In FIG. 6, multiple computing elements PE are arrangedinto a “4-line/3-column” two-dimensional matrix formation. According tothe pre-transposition analysis space A of FIG. 5, the transposingapparatus 100 cannot divide the analysis space A into each of the samenumber of unit spaces B corresponding to each computing element PEbecause the number of lined-up lattices in the Y-axis direction is “10”as the number of lined-up computing elements PE in the row direction is“4”.

In such a case, the transposing apparatus 100 divides the analysis spaceA so that a greater number of unit spaces B are assigned to computingelements PE arranged in the inner area of the matrix of computingelements PE. The transposing apparatus 100, for example, divides theanalysis space A so that 40 unit spaces B are assigned to computingelements PE arranged in the inner area of the matrix among the entirecomputing elements PE while 32 unit spaces B are assigned to computingelements PE arranged in the outer area of the matrix.

Through this process, the transposing apparatus 100 reduces a processingvolume of the computing elements PE arranged in the outer area of thematrix, where calculation of an absorbing boundary condition in theelectromagnetic field analysis is executed, to a processing volumesmaller than a processing volume of the computing elements PE arrangedin the inner area of the matrix, where calculation of an absorbingboundary condition in the electromagnetic field analysis is notexecuted. As a result, a processing volume of the computing elements PE,together with a processing volume of calculation of the absorbingboundary condition, can be averaged.

The electromagnetic field analysis that the transposing apparatus 100causes the computing element PE to execute will be described, referringto FIGS. 7 to 9. The transposing apparatus 100 causes the computingelement PE to solve calculation equations by the FDTD method given asequations (1) to (6), thereby causes the computing element PE tocalculate the value of an electromagnetic field in each unit space Bincluded in assigned spaces.

In equations (1) to (6), Ex denotes the value of an electric field inthe X-axis direction, Ey denotes the value of the electric field in theY-axis direction, Ez denotes the value of the electric field in theZ-axis direction, Hx denotes the value of a magnetic field in the X-axisdirection, Hy denotes the value of the magnetic field in the Y-axisdirection, Hz denotes the value of the magnetic field in the Z-axisdirection, t denotes time, i, j, and k denote a coordinate value on theX-axis, a coordinate value on the Y-axis, and a coordinate value on theZ-axis, respectively, and α and β each denote a constant.

$\begin{matrix}{{{Ex}( {x,y,z,t} )} = {{\alpha \; x \times {{Ex}( {x,y,z,{t - 1}} )}} + {\beta \; x \times \begin{bmatrix}{\{ {{H\; {z( {x,y,z,{t - \frac{1}{2}}} )}} - {H\; {z( {x,{y - 1},z,{t - \frac{1}{2}}} )}}} \} -} \\\{ {{H\; {y( {x,y,z,{t - \frac{1}{2}}} )}} - {H\; {y( {x,y,{z - 1},{t - \frac{1}{2}}} )}}} \}\end{bmatrix}}}} & (1) \\{{{Ey}( {x,y,z,t} )} = {{\alpha \; y \times {{Ey}( {x,y,z,{t - 1}} )}} + {\beta \; y \times \begin{bmatrix}{\{ {{H\; {z( {x,y,z,{t - \frac{1}{2}}} )}} - {H\; {z( {{x - 1},y,z,{t - \frac{1}{2}}} )}}} \} -} \\\{ {{{Hx}( {x,y,z,{t - \frac{1}{2}}} )} - {{Hx}( {x,y,{z - 1},{t - \frac{1}{2}}} )}} \}\end{bmatrix}}}} & (2) \\{{{Ez}( {x,y,z,t} )} = {{\alpha \; z \times {{Ez}( {x,y,z,{t - 1}} )}} + {\beta \; z \times \begin{bmatrix}{\{ {{{Hy}( {x,y,z,{t - \frac{1}{2}}} )} - {{Hy}( {{x - 1},y,z,{t - \frac{1}{2}}} )}} \} -} \\\{ {{{Hx}( {x,y,z,{t - \frac{1}{2}}} )} - {{Hx}( {x,{y - 1},z,{t - \frac{1}{2}}} )}} \}\end{bmatrix}}}} & (3) \\{{{Hx}( {x,y,z,t} )} = {{\alpha \; x \times {{Hx}( {x,y,z,{t - 1}} )}} + {\beta \; x \times \begin{bmatrix}{\{ {{{Ez}( {x,y,z,{t - \frac{1}{2}}} )} - {{Ez}( {x,{y - 1},z,{t - \frac{1}{2}}} )}} \} -} \\\{ {{{Ey}( {x,y,z,{t - \frac{1}{2}}} )} - {{Ey}( {x,y,{z - 1},{t - \frac{1}{2}}} )}} \}\end{bmatrix}}}} & (4) \\{{{Hy}( {x,y,z,t} )} = {{\alpha \; y \times {{Hy}( {x,y,z,{t - 1}} )}} + {\beta \; y \times \begin{bmatrix}{\{ {{{Ez}( {x,y,z,{t - \frac{1}{2}}} )} - {{Ez}( {{x - 1},y,z,{t - \frac{1}{2}}} )}} \} -} \\\{ {{{Ex}( {x,y,z,{t - \frac{1}{2}}} )} - {{Ex}( {x,y,{z - 1},{t - \frac{1}{2}}} )}} \}\end{bmatrix}}}} & (5) \\{{H\; {z( {x,y,z,t} )}} = {{\alpha \; z \times H\; {z( {x,y,z,{t - 1}} )}} + {\beta \; z \times \begin{bmatrix}{\{ {{{Ey}( {x,y,z,{t - \frac{1}{2}}} )} - {{Ey}( {{x - 1},y,z,{t - \frac{1}{2}}} )}} \} -} \\\{ {{{Ex}( {x,y,z,{t - \frac{1}{2}}} )} - {{Ex}( {x,{y - 1},z,{t - \frac{1}{2}}} )}} \}\end{bmatrix}}}} & (6)\end{matrix}$

For example, the transposing apparatus 100 transmits an executioncommand string depicted in FIG. 7 to the computing element PE to causethe computing element PE to execute the electromagnetic field analysisof a space assigned to the computing element PE. The execution commandstring will be described, referring to FIG. 7.

FIG. 7 is an explanatory diagram of one example of the execution commandstring. As depicted in FIG. 7, the transposing apparatus 100 firstgenerates an execution command string for calculating Ex. The executioncommand string for calculating Ex includes, for example, a read commandfor reading constants αx and βx to be substituted into equation (1) andvalues of the electromagnetic fields Ex, Hz, and Hy (which read commandis expressed as “SDRAM READ [ ]” in FIG. 7.)

The execution command string for calculating Ex also includes, forexample, a computing command for substituting a read value into equation(1) and calculating the value of the electric field Ex (which computingcommand is expressed in FIG. 7 as “CARC”). The execution command stringfor calculating Ex also includes, for example, a write command forwriting the calculated value of the electric field Ex to the memorydevice M (which writ command is expressed as “SDRAM WRITE [ ]” in FIG.7.)

Hence, following a read command, the computing element PE reads theinitial values of the electric field EX, Ey, and Ez at time “t=1” andthe initial values of the magnetic field Hx, Hy, and Hz at time “t=½”,from the memory device M. Following a computing command, the computingelement PE then substitutes the read values of the electromagnetic fieldEx, Ey, Ez, Hx, Hy, and Hz into equations (1) to (3). The computingelement PE calculates the values of the electric filed Ex, Ey, and Ez attime “t=1”.

Following a read command, the computing element PE reads the values ofthe electric field EX, Ey, and Ez at time “t=1” and the initial valuesof the magnetic field Hx, Hy, and Hz at time “t=½”, from the memorydevice M. Following a computing command, the computing element PEsubstitutes the read values of the electromagnetic field Ex, Ey, Ez, Hx,Hy, and Hz into equations (4) to (6) to calculate the values of themagnetic field Hx, Hy, and Hz at time “t=1+½”. In this manner, thecomputing element PE repeats the above calculations according to theexecution command string to alternately calculate values of the electricfield and values of the magnetic field and thereby, calculates values ofthe electromagnetic field at specified times.

A specified time is a time of ending the electromagnetic field analysis,which is, for example, input by the user into the user terminal 201, istransmitted from the user terminal 201 to the transposing apparatus 100,and is transmitted from the transposing apparatus 100 to the computingelement PE.

The computing element PE calculates the value of the electromagneticfield at the present time by substituting the value of theelectromagnetic field in an adjacent unit space B at the previous timeinto equations (1) to (6). For this reason, the computing element PE mayexchange the value of the electromagnetic field at the previous timewith an adjacent computing element PE.

The execution command string for calculating Ex includes, for example, atransmission command for transmitting the calculated value of theelectric field Ex to an adjacent computing element PE (whichtransmission command is expressed in FIG. 7 as “FPGA data transfer(transmission)”). The execution command string for calculating Ex alsoincludes, for example, a reception command for receiving the value ofthe electric field Ex calculated by an adjacent computing element PE(which reception command is expressed in FIG. 7 as “FPGA data transfer(reception)”). A case of computing elements PE adjacent to each otherexchanging the value of the electromagnetic field according to anexecution command string will be described, referring to FIG. 8.

FIG. 8 is an explanatory diagram of data exchange between computingelements PE. As depicted in FIG. 8, computing elements PE1 to PE16 eachexecute the electromagnetic field analysis of each unit space B. Thecomputing elements PE perform data exchange concerning theelectromagnetic field in unit spaces B present in the boundary betweencomputing elements PE.

For example, the computing element PE1 and the computing element PE2exchange the values of electromagnetic field Ez and Hz on the Z-axisdirection of adjacent unit space B with each other. This allows thecomputing element PE to acquire a computation result by an adjacentcomputing element PE and execute the electromagnetic field analysis.

When the electromagnetic field analysis by each computing element PE iscompleted, the transposing apparatus 100 acquires the result ofelectromagnetic field analysis from each computing element PE, andoutputs the result of electromagnetic field analysis of the analysisspace A as a whole. For this process, the execution command string ofFIG. 7 includes, for example, a transmission command for transmittingthe calculated value of the electromagnetic field to the transposingapparatus 100 (which transmission command in FIG. 7 is expressed as“computation result output”). Output of the result of electromagneticfield analysis of the analysis space A as a whole will be described,referring to FIG. 9.

FIG. 9 is an explanatory diagram of output of the result ofelectromagnetic field analysis of the analysis space A as a whole. Asdepicted in FIG. 9, the transposing apparatus 100 divides the analysisspace A given by exchanging values of the electromagnetic field in theY-axis direction and values of the electromagnetic field in the Z-axisdirection for each other and assigns divided spaces to four computingelements PE.

The computing element PE calculates the value of the electromagneticfield in the unit space B assigned to the computing element PE by anexecution command string, and transmits the calculated value of theelectromagnetic field to the transposing apparatus 100 according to atransmission command. At this time, the computing element PE mayexchange values of the electromagnetic field in the Y-axis direction andvalues of the electromagnetic field in the Z-axis, which have beenexchanged by the transposing apparatus 100, again to return the valuesto the original state.

Receiving values of the electromagnetic field from the computingelements PE, the transposing apparatus 100 merges the received values ofthe electromagnetic field together to generate the value of theelectromagnetic field in the analysis space A as a whole. Thetransposing apparatus 100 then outputs the generated value of theelectromagnetic field. Hence, the user of the transposing apparatus 100acquires the value of the electromagnetic field in the analysis space A.

A procedure of the electromagnetic field analysis process according tothe working example 1 will be described in detail, referring to FIGS. 10to 12.

FIGS. 10, 11, and 12 are sequence diagrams of a procedure of theelectromagnetic field analysis process of the working example 1. Asdepicted in FIG. 10, the user terminal 201 receives input of an analysiscondition (step S1001). The user terminal 201 then transmits thereceived analysis condition to the transposing apparatus 100 (stepS1002).

Receiving the analysis condition from the user terminal 201, thetransposing apparatus 100 executes a transposing process depicted inFIG. 13 or FIG. 17 (step S1003). The transposing apparatus 100 transmitsthe post-transposition analysis space A resulting from the transposingprocess, to the controller 202 of the computing device C (step S1004).Receiving the analysis space A, the controller 202 establishes a workarea to be used for an electromagnetic field analysis of the analysisspace A (step S1005).

Subsequently, the transposing apparatus 100 generates an executioncommand string for the electromagnetic field analysis (step S1006). Thetransposing apparatus 100 transmits the generated execution commandstring to the controller 202 of the computing device C (step S1007).

Subsequently, the controller 202 executes an initializing process (stepS1008). The controller 202 assigns the received execution command stringto each computing unit 203 (step S1009). The computing unit 203 sets aninitial value (step S1010). The controller 202 executes computation(step S1011) and thereafter, steps of FIG. 11 follow.

As depicted in FIG. 11, the computing unit 203 calculates values of anelectric field in the analysis space A (step S1101). The computing unit203 exchanges calculated values of the electric field between computingelements PE (step S1102).

The computing unit 203 calculates values of a magnetic field in theanalysis space A (step S1103). The computing unit 203 exchangescalculated values of the magnetic field between computing elements PE(step S1104). The computing unit 203 transmits calculated values of theelectromagnetic field to the controller 202 (step S1105).

Receiving the values of the electromagnetic field, the controller 202executes a reverse transposition process on the received values of theelectromagnetic field (step S1106). The controller 202 transmits thevalues of the electromagnetic field subjected to the reversetransposition process, to the transposing apparatus 100 (step S1107).

Receiving the values of the electromagnetic field from the controller202, the transposing apparatus 100 merges the received values of theelectromagnetic field together to generate the value of theelectromagnetic field in the analysis space A as a whole (step S1108).The transposing apparatus 100 transmits the generated value of theelectromagnetic field in the analysis space A to the user terminal 201(step S1109). The user terminal 201 outputs the received value of theelectromagnetic field in the analysis space A (step S1110) andthereafter, steps of FIG. 12 follow.

As depicted in FIG. 12, the computing unit 203 determines whether theelectromagnetic field analysis process has ended (step S1201). If theelectromagnetic field analysis process has not ended (step S1201: NO),the computing unit 203 returns to step S1101 of FIG. 11.

If the electromagnetic field analysis process has ended (step S1201:YES), the computing unit 203 releases the work area (step S1202). Thecomputing unit 203 transmits a notice of the end of the electromagneticfield analysis process to the controller 202 (step S1203), and ends theelectromagnetic field analysis process.

The controller 202 determines whether the electromagnetic field analysisprocess has ended (step S1204). If the electromagnetic field analysisprocess has not ended (step S1204: NO), the controller 202 returns tostep S1106 of FIG. 11.

If the electromagnetic field analysis process has ended (step S1204:YES), the controller 202 transmits a notice of the end of theelectromagnetic field analysis process to the transposing apparatus 100(step S1205), and ends the electromagnetic field analysis process.

The transposing apparatus 100 determines whether the electromagneticfield analysis process has ended (step S1206). If the electromagneticfield analysis process has not ended yet (step S1206: NO), thetransposing apparatus 100 returns to step S1108 of FIG. 11.

If the electromagnetic field analysis process has ended (step S1206:YES), the transposing apparatus 100 transmits a notice of the end of theelectromagnetic field analysis process to the user terminal 201 (stepS1207), and ends the electromagnetic field analysis process.

The user terminal 201 determines whether the electromagnetic fieldanalysis process has ended (step S1208). If the electromagnetic fieldanalysis process has not ended yet (step S1208: NO), the user terminal201 returns to step S1110 of FIG. 11. When the electromagnetic fieldanalysis process has ended (step S1208: YES), the user terminal 201 endsthe electromagnetic field analysis process. In this manner, theelectromagnetic field analyzing system 200 executes the electromagneticfield analysis of the analysis space A and outputs the value of theelectromagnetic filed in the analysis space A.

A procedure of the transposing process by the transposing apparatus 100of the working example 1 will be described in detail, referring to FIG.13. The transposing process is the process indicated by step S1003 ofFIG. 10.

As depicted in FIG. 13, the transposing apparatus 100 determines whethernumber-of-lattice information indicative of the numbers of lattices inrespective directions V1 to V3 of the analysis space A has been input totransposing apparatus 100 (step S1301). If the number-of-latticeinformation has not been input (step S1301: NO), the transposingapparatus 100 returns to step S1301 and waits for input of thenumber-of-lattice information.

If the number-of-lattice information has been input (step S1301: YES),the transposing apparatus 100 identifies the greatest number oflattices, the middle number of lattices, and the least number oflattices among the numbers of lattices in respective directions V1 to V3(step S1302). The transposing apparatus 100 sets the greatest number oflattices to a variable X, the middle number of lattices to a variable Y,and least number of lattices to a variable Z (step S1303).

The transposing apparatus 100 executes a direction transposition patterndetermining process depicted in FIG. 14 to determine a directiontransposition pattern (step S1304). The transposing apparatus 100exchanges variables in respective axial directions according to thedetermined direction transposition pattern (step S1305), after which thetransposing apparatus 100 ends the transposing process.

Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. Thecomputing elements PE also reduces the time consumed for theelectromagnetic field analysis of the post-transposition analysis spaceA to a period shorter than the time consumed for the electromagneticfield analysis of the pre-transposition analysis space A and averagesprocessing volumes of computing elements PE.

A procedure of the direction transposition pattern determining processby the transposing apparatus 100 will be described in detail, referringto FIG. 14.

FIG. 14 is a flowchart of the detailed procedure of the directiontransposition pattern determining process by the transposing apparatus100. As depicted in FIG. 14, the transposing apparatus 100 determineswhether a number set to the variable X represents the number of latticeson the X-axis (step S1401). If the number set to the variable Xrepresents the number of lattices on the X-axis (step S1401: YES), thetransposing apparatus 100 determines whether a number set to thevariable Z represents the number of lattices on the Z-axis (step S1402).

If the number set to the variable Z represents the number of lattices onthe Z-axis (step S1402: YES), the transposing apparatus 100 adopts adirection transposition pattern P0 (step S1403). The transposingapparatus 100 ends the direction transposition pattern determiningprocess.

If the number set to the variable Z does not represent the number oflattices on the Z-axis (step S1402: NO), the transposing apparatus 100adopts a direction transposition pattern P1 (step S1404). Thetransposing apparatus 100 ends the direction transposition patterndetermining process.

If the number set to the variable X does not represent the number oflattices on the X-axis at step S1401 (step S1401: NO), the transposingapparatus 100 determines whether the number set to the variable Xrepresents the number of lattices on the Y-axis (step S1405). If thenumber set to the variable X represents the number of lattices on theY-axis (step S1405: YES), the transposing apparatus 100 determineswhether the number set to the variable Z represents the number oflattices on the Z-axis (step S1406).

If the number set to the variable Z represents the number of lattices onthe Z-axis (step S1406: YES), the transposing apparatus 100 adopts adirection transposition pattern P2 (step S1407). The transposingapparatus 100 ends the direction transposition pattern determiningprocess.

If the number set to the variable Z does not represent the number oflattices on the Z-axis (step S1406: NO), the transposing apparatus 100adopts a direction transposition pattern P3 (step S1408). Thetransposing apparatus 100 ends the direction transposition patterndetermining process.

If the number set to the variable X does not represent the number oflattices on the Y-axis at step S1405 (step S1405: NO), the transposingapparatus 100 determines whether the number set to the variable Zrepresents the number of lattices on the Y-axis (step S1409).

If the number set to the variable Z represents the number of lattices onthe Y-axis (step S1409: YES), the transposing apparatus 100 adopts adirection transposition pattern P4 (step S1410). The transposingapparatus 100 ends the direction transposition pattern determiningprocess.

If the number set to the variable Z does not represent the number oflattices on the Y-axis (step S1409: NO), the transposing apparatus 100adopts a direction transposition pattern P5 (step S1411). Thetransposing apparatus 100 ends the direction transposition patterndetermining process. Through this procedure, the transposing apparatus100 can determine which directions of the analysis space A are to beexchanged.

A working example 2 of transposition of data of the analysis space A bythe transposing apparatus 100 will be described, referring to FIGS. 15and 16. The working example 2 is an example in which the unit spaces Bof the analysis space A are transposed so that the utilizationefficiency of the computing elements PE is improved.

FIGS. 15 and 16 are explanatory diagrams of the working example 2 oftransposition of data of the analysis space A by the transposingapparatus 100. In FIG. 15, the numbers of lattices in respectivedirections V1 to V3 of the analysis space A are “3, 2, 2”, and thedirection V1, direction V2, and direction V3 match the x-axis direction,Y-axis direction, and Z-axis direction, respectively. The numbers oflattices in respective axial directions are, therefore, “3, 2, 2”.Multiple computing elements PE are arranged into a “4-line/3-column”two-dimensional matrix formation. It is assumed the row direction andthe column direction of the matrix of computing elements PE correspondto the Y-axis direction and the Z-axis direction, respectively.

The transposing apparatus 100 transposes data of the analysis space A sothat a direction in which the size of the analysis space A is thegreatest becomes the axial direction corresponding to a direction inwhich the number of lined-up computing elements PE is larger among therow direction and the column direction of multiple of computing elementsPE. The transposing apparatus 100 then transposes data of the analysisspace A so that the direction in which the size of the analysis space Ais the least becomes the axial direction corresponding to the directionin which the number of lined-up computing elements PE is smaller amongthe row direction and the column direction of the multiple computingelements PE. The transposing apparatus 100 then divides thepost-transposition analysis space A by lattices having cellscorresponding to the arrangement position of the computing elements PE,and causes each computing element PE to execute the electromagneticfield analysis of a space present in the corresponding cell.

The transposing apparatus 100 identifies, for example, the greatestnumber of lattices “3” among the numbers of lattices “3, 2, 2” inrespective directions V1 to V3 of the analysis space A and thereby,identifies the direction V1 in which the number of lattices is thegreatest. The transposing apparatus 100 then identifies the Y-axisdirection in which the identified direction V1 corresponds to thedirection in which the number of lined-up computing elements PE islarger among the row direction and the column direction of the multiplecomputing elements PE. The transposing apparatus 100 exchanges variablesfor the electromagnetic field along the direction V1, for variables forthe electromagnetic field along the direction V2 matching the Y-axisdirection so that the identified direction V1 becomes the identifiedY-axis direction and thereby, transposes data of the analysis space A.

The transposing apparatus 100 identifies the least number of lattices“2” among the numbers of lattices “2, 3, 3” in respective directions V1to V3 of the post-transposition analysis space A and thus, identifiesthe direction V3 in which the number of lattices is the least. Thetransposing apparatus 100 transposes data of the analysis space A sothat the identified direction V3 becomes the Z-axis directioncorresponding to the direction in which the number of lined-up computingelements PE is smaller among the row direction and the column directionof the multiple computing elements PE. In FIG. 15, the direction V3matches the Z-axis direction, so that the data of the analysis space Ais not transposed in the direction V3. As a result, transposingapparatus 100 transposes the data of the analysis space A in which thenumbers of lattices in respective axial directions of thethree-dimensional coordinate system are “3, 2, 2” into data of theanalysis space A in which the numbers of lattices in respective axialdirections of the three-dimensional coordinate system are “2, 3, 2”.

The transposing apparatus 100 divides the post-transposition analysisspace A by lattices having cells corresponding to the arrangementpositions of the computing elements PE into spaces in the divided cells.The transposing apparatus 100 assigns a space in each cell correspondingto the arrangement position of each computing element PE, to eachcomputing element PE and causes the computing element PE to execute theelectromagnetic field analysis of the assigned space.

For example, the transposing apparatus 100 divides the analysis space Ain which the numbers of lattices in respective axial directions are “2,3, 2” into 6 spaces with the numbers of lattices of “2, 1, 1” so thatthe divided spaces correspond to the arrangement position of a“4-line/3-column” matrix of the computing elements PE. The transposingapparatus 100 then assigns a space corresponding to the arrangementposition of each computing element PE, to each computing element PE andcauses the computing element PE to execute the electromagnetic fieldanalysis of the assigned space.

Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the computing elements PE can reduce the time required for theanalysis of the post-transposition analysis space A to a period shorterthan the time required for the electromagnetic field analysis of thepre-transposition analysis space A.

Before the transposition, the transposing apparatus 100 divides theanalysis space A into 4 spaces, assigns 4 spaces to 4 computing elementsPE among 12 computing elements PE, and causes each computing element PEto execute the electromagnetic field analysis. After the transposition,the transposing apparatus 100 divides the analysis space A into 6spaces, assigns 6 spaces to 6 computing elements PE among 12 computingelements PE, and causes each computing element PE to execute theelectromagnetic field analysis. As a result, the transposing apparatus100 increases the number of computing elements PE to be used andthereby, averages processing volumes of the computing elements PE andimproves the utilization efficiency of the computing elements PE.

In FIG. 16, the numbers of lattices in respective directions V1 to V3 ofthe analysis space A are “6, 8, 2”, and the direction V1, direction V2,and direction V3 match the x-axis direction, Y-axis direction, andZ-axis direction, respectively. The numbers of lattices in respectiveaxial directions are, therefore, “6, 8, 2”. Multiple computing elementsPE are arranged into a “4-line/3-column” two-dimensional matrixformation. It is assumed the row direction and the column direction ofthe matrix of computing elements PE correspond to the Y-axis directionand the Z-axis direction, respectively.

The transposing apparatus 100 identifies either a direction in which thesize of the analysis space A is the greatest or a direction in whichsize of the analysis space A is a middle size, as a direction close to adirection in which the number of lined-up computing elements PE islarger among the row direction and the column direction of the multiplecomputing elements PE. The transposing apparatus 100 then transposesdata of the analysis space A so that the identified direction becomesthe axial direction corresponding to the direction in which the numberof lined-up computing elements PE is larger.

The transposing apparatus 100 then identifies a direction in which thesize of the analysis space A is the least or the direction in which sizeof the analysis space A is the middle size, as a direction close to adirection in which the number of lined-up computing elements PE issmaller among the row direction and the column direction of the multiplecomputing elements PE. The transposing apparatus 100 transposes data ofthe analysis space A so that the identified direction becomes the axialdirection corresponding to the direction in which the number of lined-upcomputing elements PE is smaller. The transposing apparatus 100 dividesthe post-transposition analysis space A by lattices each having a cellcorresponding to the arrangement position of each of the computingelements PE, and causes each computing element PE to execute theelectromagnetic field analysis of a space present in the divided cell.

The transposing apparatus 100, for example, identifies the greatestnumber of lattices “8”, the middle number of lattices “6”, and the leastnumber of lattices “2” among the numbers of lattices “6, 8, 2” inrespective directions V1 to V3 of the analysis space A. The transposingapparatus 100 then transposes data of the analysis space A so that thedirection V1 in which the number of lattices is “6”, which is close tothe number of lined-up computing elements PE “4” in the row directionamong the greatest number of lattices “8” and the middle number oflattices “6”, becomes the Y-axis direction.

The transposing apparatus 100 then transposes data of the analysis spaceA so that the direction V3, which is not transposed into the Y-axisdirection and in which the number of lattices is “2” close to the numberof lined-up computing elements PE “3” in the column direction among themiddle number of lattices “6” and the least number of lattices “2”,becomes the Z-axis direction. In FIG. 16, the direction V3 matches theZ-axis direction, so that the data of the analysis space A is nottransposed in the direction V3. As a result, transposing apparatus 100transposes the data of the analysis space A in which the numbers oflattices in respective axial directions of the three-dimensionalcoordinate system are “6, 8, 2” into data of the analysis space A inwhich the numbers of lattices in respective axial directions of thethree-dimensional coordinate system are “8, 6, 2”.

The transposing apparatus 100 divides the post-transposition analysisspace A by lattices having cells corresponding to the arrangementpositions of the computing elements PE into spaces in the divided cells.The transposing apparatus 100 assigns a space in each cell correspondingto the arrangement position of each computing element PE, to eachcomputing element PE and causes the computing element PE to execute theelectromagnetic field analysis of the assigned space.

For example, the transposing apparatus 100 divides the analysis space Ain which the numbers of lattices in respective axial directions are “8,6, 2” into 8 spaces with the numbers of lattices of “6, 2, 1” so thatthe divided spaces correspond to the arrangement position of a“4-line/3-column” matrix of the computing elements PE. The transposingapparatus 100 then assigns a space corresponding to the arrangementposition of each computing element PE, to each computing element PE andcauses the computing element PE to execute the electromagnetic fieldanalysis of the assigned space.

Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the computing elements PE can reduce the time consumed for theanalysis of the post-transposition analysis space A to a period shorterthan the time consumed for the electromagnetic field analysis of thepre-transposition analysis space A. Reducing the time consumed for theanalysis of the post-transposition analysis space A to a period shorterthan the time consumed for the electromagnetic field analysis of thepre-transposition analysis space A, the transposing apparatus 100 alsoaverages processing volumes of the computing elements PE.

A procedure of the electromagnetic field analysis process according tothe working example 2 will be described in detail. The electromagneticfield analysis process of the working example 2 is the same as theelectromagnetic field analysis process of the working example 1described referring to FIGS. 10 to 12. The description of theelectromagnetic field analysis process of the working example 2 is,therefore, omitted.

A procedure of the transposing process by the transposing apparatus 100according to the working example 2 will be described in detail,referring to FIG. 17. The transposing process is the process indicatedby step S1003 of FIG. 10.

FIG. 17 is a flowchart of a procedure of the transposing process by thetransposing apparatus 100 according to the working example 2. Asdepicted in FIG. 17, the transposing apparatus 100 determines whethernumber-of-lattice information has been input to transposing apparatus100 (step S1701). If the number-of-lattice information has not beeninput (step S1701: NO), the transposing apparatus 100 returns to stepS1701 and waits for input of the number-of-lattice information.

If the number-of-lattice information has been input (step S1701: YES),the transposing apparatus 100 identifies the greatest number oflattices, the middle number of lattices, and the least number oflattices among the numbers of lattices in respective axial directions(step S1702).

The transposing apparatus 100 determines if the least number of latticesis equal to or larger than the number of lined-up computing elements Pyin the row direction (step S1703). If the least number of lattices isequal to or larger than the number of lined-up computing elements Py inthe row direction (step S1703: YES), the transposing apparatus 100 setsthe greatest number of lattices to the variable X, the middle number oflattices to the variable Y, and the least number of lattices to thevariable Z (step S1704). The transposing apparatus 100 then proceeds tostep S1711.

If the least number of lattices is not equal to or larger than thenumber of lined-up computing elements Py in the row direction (stepS1703: NO), the transposing apparatus 100 determines if the greatestnumber of lattices is equal to or smaller than the number of lined-upcomputing elements Pz in the column direction (step S1705). If thegreatest number of lattices is equal to or smaller than the number oflined-up computing elements Pz in the column direction (step S1705:YES), the transposing apparatus 100 sets the least number of lattices tothe variable X, the middle number of lattices to the variable Y, and thegreatest number of lattices to the variable Z (step S1706). Thetransposing apparatus 100 proceeds to step S1711.

If the greatest number of lattices is not equal to or smaller than thenumber of computing elements Pz in the column direction (step S1705:NO), the transposing apparatus 100 calculates Lmax by dividing thegreatest number of lattices by the number of lined-up computing elementsPy in the row direction and calculates Lmid by dividing the middlenumber of lattices by the number of lined-up computing elements Py inthe row direction. The transposing apparatus 100 also calculates Mmid bydividing the middle number of lattices by the number of lined-upcomputing elements Pz in the column direction and calculates Mmin bydividing the least number of lattices by the number of lined-upcomputing elements Pz in the column direction (step S1707).

Subsequently, the transposing apparatus 100, among Lmax or Lmid whichare the number of lattices, selects that which is closer to 1, and setsthe selected number of lattices to the variable Y (step S1708). Thetransposing apparatus 100 selects Mmid or Mmin that is the number oflattices closer to 1, and sets the selected number of lattices to thevariable Z (step S1709). The transposing apparatus 100 sets theremaining number of lattices to the variable X (step S1710), andproceeds to step S1711.

At step S1711, the transposing apparatus 100 executes the directiontransposition pattern determining process of FIG. 14 to determinedirection transposition patterns (step S1711). The transposing apparatus100 exchanges variables for individual axial directions according to thedetermined direction transposition patterns (step S1712) and thereafter,the transposing apparatus 100 ends the transposing process.

Through this process, the transposing apparatus 100 increases aprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. Thetransposing apparatus 100 reduces the time consumed for the analysis ofthe post-transposition analysis space A to a period shorter than thetime consumed for the electromagnetic field analysis of thepre-transposition analysis space A and also averages processing volumesof the computing elements PE.

As described, the transposing apparatus 100 transposes data of theanalysis space A so that the direction of the analysis space A in whichthe number of lattices is the greatest becomes the direction of the axisin which the analysis space A is not divided, among directions ofrespective axes of the three-dimensional rectangular coordinate system.Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the computing elements PE can reduce the time consumed for theanalysis of the post-transposition analysis space A to a period shorterthan the time consumed for the electromagnetic field analysis of thepre-transposition analysis space A.

The transposing apparatus 100 transposes data of the analysis space A sothat the direction of the analysis space A in which the number oflattices is the least becomes the direction of the axis corresponding toa direction in which the number of lined-up computing elements PE is theleast among the row direction and the column direction of the computingelements PE, among directions of respective axes of thethree-dimensional rectangular coordinate system. Through this process,the transposing apparatus 100 reduces the time consumed for the analysisof the post-transposition analysis space A to a period shorter than thetime consumed for the electromagnetic field analysis of thepre-transposition analysis space A and also averages processing volumesof the computing elements PE.

The transposing apparatus 100 transposes data of the analysis space A sothat the direction of the analysis space A in which the number oflattices is the greatest becomes the direction of the axis correspondingto a direction in which the number of lined-up computing elements PE isthe greatest among the row direction and the column direction of thecomputing elements PE, among directions of respective axes of thethree-dimensional rectangular coordinate system. The transposingapparatus 100 also transposes data of the analysis space A so that thedirection of the analysis space A in which the number of lattices is theleast becomes the direction of the axis in which the analysis space A isnot divided, among directions of respective axes of thethree-dimensional rectangular coordinate system.

Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the transposing apparatus 100 can reduce the time consumed forthe analysis of the post-transposition analysis space A to a periodshorter than the time consumed for the electromagnetic field analysis ofthe pre-transposition analysis space A. Reducing the time consumed forthe analysis of the post-transposition analysis space A to a periodshorter than the time consumed for the electromagnetic field analysis ofthe pre-transposition analysis space A, transposing apparatus 100 alsoaverages processing volumes of the computing elements PE.

The transposing apparatus 100 identifies a direction in which the numberof lattices is close to the greatest number of lined-up computingelements PE among the numbers of the lined-up computing elements PE inthe row direction and the column direction, among the greatest number oflattices and the middle number of lattices. The transposing apparatus100 then transposes data of the analysis space A so that the identifieddirection becomes the direction of the axis corresponding to a directionin which the number of lined-up computing elements PE is the greatestamong the row direction and the column direction of the computingelements PE, among directions of respective axes of thethree-dimensional rectangular coordinate system.

The transposing apparatus 100 identifies a direction in which the numberof lattices is close to the least number of lined-up computing elementsPE among the numbers of the lined-up computing elements PE in the rowdirection and the column direction, among the least number of latticesand the middle number of lattices. The transposing apparatus 100transposes data of the analysis space A so that the identified directionbecomes the direction of the axis corresponding to a direction in whichthe number of lined-up computing elements PE is the least among the rowdirection and the column direction of the computing elements PE, amongdirections of respective axes of the three-dimensional rectangularcoordinate system.

Through this process, the transposing apparatus 100 increases theprocessing volume for the electromagnetic field analysis on the X-axisdirection in which the computing elements PE performs efficientcalculation, and reduces the processing volume for the electromagneticfield analysis along the directions of the Y-axis and the Z-axis. As aresult, the transposing apparatus 100 can reduce the time consumed forthe analysis of the post-transposition analysis space A to a periodshorter than the time consumed for the electromagnetic field analysis ofthe pre-transposition analysis space A. Reducing the time consumed forthe analysis of the post-transposition analysis space A to a periodshorter than the time consumed for the electromagnetic field analysis ofthe pre-transposition analysis space A, transposing apparatus 100 alsoaverages processing volumes of the computing elements PE.

The transposing method described in the present embodiment may beimplemented by executing a prepared program on a computer such as apersonal computer and a workstation. The program is stored on acomputer-readable recording medium such as a hard disk, a flexible disk,a CD-ROM, an MO, and a DVD, read out from the computer-readable medium,and executed by the computer. The program may be distributed through anetwork such as the Internet.

The transposing apparatus 100 described in the present embodiment can berealized by an application specific integrated circuit (ASIC) such as astandard cell or a structured ASIC, or a programmable logic device (PLD)such as a field-programmable gate array (FPGA). Specifically, forexample, functional units (detecting unit 401, transposing unit 402, andoutput unit 403) of the transposing apparatus 100 are defined inhardware description language (HDL), which is logically synthesized andapplied to the ASIC, the PLD, etc., thereby enabling fabrication of thetransposing apparatus.

According to one aspect of the present invention, improved efficiency ofelectromagnetic field analysis is achieved.

All examples and conditional language provided herein are intended forpedagogical purposes of aiding the reader in understanding the inventionand the concepts contributed by the inventor to further the art, and arenot to be construed as limitations to such specifically recited examplesand conditions, nor does the organization of such examples in thespecification relate to a showing of the superiority and inferiority ofthe invention. Although one or more embodiments of the present inventionhave been described in detail, it should be understood that the variouschanges, substitutions, and alterations could be made hereto withoutdeparting from the spirit and scope of the invention.

What is claimed is:
 1. A transposing apparatus comprising a computerthat controls a computing device having a plurality of computingelements arranged into a matrix formation and memory devices eachconnected to each computing element, the computing device executing anelectromagnetic field analysis process on latticed three-dimensionalanalysis subject data present in a three-dimensional coordinate system,the computer configured to: detect the number of lined-up lattices in adirection of a first axis of the three-dimensional coordinate system,the number of lined-up lattices in a direction of a second axis of thecoordinate system, and the number of lined-up lattices in a direction ofa third axis of the coordinate system, through detection on thethree-dimensional analysis subject data; transpose a group of latticesof the three-dimensional analysis subject data, based on the detectednumbers of lined-up lattices and on the number of lined-up computingelements in a row direction and the number of lined-up computingelements in a column direction among the computing elements; and outputto the computing device, the three-dimensional analysis subject datatransposed.
 2. The transposing apparatus according to claim 1, whereinthe computer, when the least number of lined-up lattices among therespective numbers of lattices is larger than the number of lined-upcomputing elements in the row direction and the number of lined-upcomputing elements in the column direction, transposes a group oflattices of the three-dimensional analysis subject data so that adirection of a lineup of lattices of the three-dimensional analysissubject data in which number of lattices is greatest becomes a directionof an axis not corresponding to the row direction or the columndirection, among directions of the first axis, the second axis, and thethird axis.
 3. The transposing apparatus according to claim 2, whereinthe computer transposes a group of lattices of the three-dimensionalanalysis subject data so that a direction of a lineup of lattices of thethree-dimensional analysis subject data in which number of lattices isleast becomes a direction of an axis corresponding to a lineup directionin which the number of lined-up computing elements is least among thenumber of lined-up computing elements in the row direction and thenumber of lined-up computing elements in the column direction, amongdirections of the first axis, the second axis, and the third axis. 4.The transposing apparatus according to claim 1, wherein the computer,when the greatest number of lined-up lattices among the respectivenumbers of lattices is smaller than the number of lined-up computingelements in the row direction and the number of lined-up computingelements in the column direction, transposes a group of lattices of thethree-dimensional analysis subject data so that a direction of a lineupof lattices of the three-dimensional analysis subject data in which thenumber of lattices is greatest becomes a direction of an axiscorresponding a lineup direction in which the number of lined-upcomputing elements is greatest among the number of lined-up computingelements in the row direction and the number of lined-up computingelements in the column direction, among directions of the first axis,the second axis, and the third axis.
 5. The transposing apparatusaccording to claim 4, wherein the computer transposes a group oflattices of the three-dimensional analysis subject data so that adirection of a lineup of lattices of the three-dimensional analysissubject data in which number of lattices is least becomes a direction ofan axis not corresponding to the row direction or the column direction,among directions of the first axis, the second axis, and the third axis.6. The transposing apparatus according to claim 1, wherein the computer,when a first number of lined-up computing elements selected as a largernumber of computing elements among the number of grouped computingelements in the row direction and the number of grouped computingelements in the column direction is larger than the least number oflined-up lattices among the respective numbers of lined-up lattices anda second number of lined-up computing elements selected as a smallernumber of computing elements among the number grouped computing elementsin the row direction and the number of grouped computing elements in thecolumn direction is smaller than the greatest number of lined-uplattices among the respective numbers of lined-up lattices, transposes agroup of lattices of the three-dimensional analysis subject data so thata direction of a lineup of lattices of the three-dimensional analysissubject data becomes a direction of an axis corresponding to a lineupdirection in which computing elements of the first number of lined-upcomputing elements are lined up, among directions of the first axis, thesecond axis, and the third axis, the number of the lineup of latticesbeing the number of lined-up lattices close to the first number oflined-up computing elements among the greatest number of lined-uplattices and a middle number of lined-up lattices equal to or less thanthe greatest number of lined-up lattices and equal to or larger than theleast number of lined-up lattices.
 7. The transposing apparatusaccording to claim 6, wherein the computer transposes a group oflattices of the three-dimensional analysis subject data so that adirection of a lineup of lattices of the three-dimensional analysissubject data becomes a direction of an axis corresponding to a lineupdirection in which computing elements of the second number of lined-upcomputing elements are lined up, among directions of the first axis, thesecond axis, and the third axis, the number of the lineup of latticesbeing the number of lined-up lattices close to the second number oflined-up computing elements among the middle number of lined-up latticesand the least number of lined-up lattices.
 8. A transposing methodexecuted by a computer that controls a computing device having aplurality of computing elements arranged into a matrix formation andmemory devices each connected to each computing element, the computingdevice executing an electromagnetic field analysis process on latticedthree-dimensional analysis subject data present in a three-dimensionalcoordinate system, the transposing method comprising: detecting thenumber of lined-up lattices in a direction of a first axis of thethree-dimensional coordinate system, the number of lined-up lattices ina direction of a second axis of the coordinate system, and the number oflined-up lattices in a direction of a third axis of the coordinatesystem, through detection on the three-dimensional analysis subjectdata; transposing a group of lattices of the three-dimensional analysissubject data, based on the detected numbers of lined-up lattices and onthe number of lined-up computing elements in a row direction and thenumber of lined-up computing elements in a column direction among thecomputing elements; and outputting to the computing device, thethree-dimensional analysis subject data transposed.
 9. Acomputer-readable recording medium storing a transposing program causinga computer that controls a computing device having a plurality ofcomputing elements arranged into a matrix formation and memory deviceseach connected to each computing element, the computing device executingan electromagnetic field analysis process on latticed three-dimensionalanalysis subject data present in a three-dimensional coordinate system,to execute a process comprising: detecting the number of lined-uplattices in a direction of a first axis of the three-dimensionalcoordinate system, the number of lined-up lattices in a direction of asecond axis of the coordinate system, and the number of lined-uplattices in a direction of a third axis of the coordinate system,through detection on the three-dimensional analysis subject data;transposing a group of lattices of the three-dimensional analysissubject data, based on the detected numbers of lined-up lattices and onthe number of lined-up computing elements in a row direction and thenumber of lined-up computing elements in a column direction among thecomputing elements; and outputting to the computing device, thethree-dimensional analysis subject data transposed.